package api.collection;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class ListDemo {
    public static void main(String[] args) {
        List<String> list=new LinkedList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);

        //E get(int index):获取下标对应的元素
        String e=list.get(2);
        System.out.println(e);

        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
        System.out.println("----------");
        for(String str:list){
            System.out.println(str);
        }
        System.out.println("----------");
        Iterator<String> it=list.listIterator();
        while (it.hasNext()){
            String str=it.next();
            System.out.println(str);
        }
        System.out.println("------------------------");
        //E set(int index,E e):将给顶元素设置到指代位置，返回被替换的元素---一般不接收
        //list.set(2,"six");//将list中下标为2的元素设置为six---常规用法
        //System.out.println(list);
        String old=list.set(3,"sive");//将list中下标为3的元素设置为sive，同时将原数据返回old
        System.out.println("list:"+list);
        System.out.println(old);

        /*
        E remove(int index);
        删除指代位置的元素，并返回指定位置的元素
         */
        //list.remove(2);//删除下标为2的元素--常规用法
        String s=list.remove(2);
        System.out.println("list:"+list);//list:[one, two, sive, five]
        System.out.println(s);//three
        /*
        void add(int index,E e);
        将给定元素e添加到index所指定的位置，相当于插入操作
         */
        list.add(3,"seven");//在list下标为3的位置插入seven
        System.out.println(list);//[one, two, sive, seven, five]
    }
}
